﻿Public Class perTipoEndereco
    Inherits PersistenciaPadrao.AcessoBD

    ReadOnly Property selecionarTiposEndereco() As DataTable

        Get
            Dim sSql As String

            sSql = "SELECT codTipoEndereco, DescTipoEndereco" & Environment.NewLine &
                   " FROM com_TipoEndereco" & Environment.NewLine &
                   " ORDER BY descTipoEndereco"

            Return MyBase.executarConsulta(sSql, True)

        End Get

    End Property

    Public Function inserirTIpoEndereco(ByVal sDescTipoEndereco As String, ByVal bEspComplemento As Boolean) As Int32
        Dim sSql As String

        sSql = "INSERT INTO com_tipoEndereco" & Environment.NewLine &
               "           (descTipoEndereco" & Environment.NewLine &
               "            ,espReferencia" & Environment.NewLine &
               "            )" & Environment.NewLine &
               "     VALUES" & Environment.NewLine &
               "           (" & Environment.NewLine &
               "            @descTipoEndereco" & Environment.NewLine &
               "           ,@espReferencia" & Environment.NewLine &
               "            ); SELECT SCOPE_IDENTITY()"

        MyBase.limparParametros()
        MyBase.inserirParametro("@descTipoEndereco", sDescTipoEndereco)
        MyBase.inserirParametro("@espReferencia", bEspComplemento)

        Return MyBase.executarConsultaCampo(sSql, True)

    End Function

    Public Sub editarTipoEndereco(ByVal iCodTipoEndereco As Int32,
                           ByVal sDescricao As String,
                           ByVal bEspComplemento As Boolean)
        Dim sSql As String

        sSql = "UPDATE com_TipoEndereco SET" & Environment.NewLine &
               "           descTIpoEndereco = @descricao" & Environment.NewLine &
               "           ,espReferencia=@espReferencia" & Environment.NewLine &
               "WHERE codTipoEndereco=@codTipoEndereco"

        MyBase.limparParametros()
        MyBase.inserirParametro("@descricao", sDescricao)
        MyBase.inserirParametro("@espReferencia", bEspComplemento)
        MyBase.inserirParametro("@codTipoEndereco", iCodTipoEndereco)

        MyBase.executarAcao(sSql, True)

    End Sub

    Public Function verificarTipoEnderecoCadastrado(ByVal iCodTipoEndereco As Int32,
                                              ByVal sDescricao As String) As Boolean
        Dim sSql As String

        sSql = "SELECT codTipoEndereco" & Environment.NewLine &
               " FROM com_TipoEndereco" & Environment.NewLine &
               "WHERE descTipoEndereco = @descricao " & Environment.NewLine
        If iCodTipoEndereco > 0 Then
            sSql &= "  AND codTipoEndereco<>@codTipoEndereco"
        End If

        MyBase.limparParametros()
        MyBase.inserirParametro("@descricao", sDescricao)
        If iCodTipoEndereco > 0 Then
            MyBase.inserirParametro("@codTipoEndereco", iCodTipoEndereco)
        End If

        Return MyBase.executarConsulta(sSql, True).Rows.Count = 0

    End Function

    Public Function selecionarDadosTiposEndereco(ByVal iCodTipoEndereco As Int32) As DataRow
        Dim sSql As String
        Dim dtbTipoEndereco As DataTable

        sSql = "SELECT *" & Environment.NewLine &
                "  FROM com_TipoEndereco" & Environment.NewLine &
                " WHERE codTIpoEndereco=@codTipoEndereco"

        MyBase.limparParametros()
        MyBase.inserirParametro("@codTIpoEndereco", iCodTipoEndereco)

        dtbTipoEndereco = MyBase.executarConsulta(sSql, True)

        If dtbTipoEndereco.Rows.Count > 0 Then
            Return dtbTipoEndereco.Rows(0)
        Else
            Return Nothing
        End If

    End Function

    Public Sub excluirTipoEndereco(ByVal iCodTipoEndereco As Int32)
        Dim sSql As String

        sSql = "DELETE FROM com_TipoEndereco" & Environment.NewLine &
               " WHERE codTipoEndereco = @codTipoEndereco;"

        MyBase.limparParametros()
        MyBase.inserirParametro("@codTipoEndereco", iCodTipoEndereco)

        MyBase.executarAcao(sSql, True)

    End Sub

    Public Function validarExclusaoTipoEndereco(ByVal iCodTipoEndereco As Int32) As Boolean
        Dim sSql As String

        sSql = "SELECT codTipoEndereco " & Environment.NewLine &
               "  FROM com_endereco " & Environment.NewLine &
               " WHERE codTipoEndereco = @codTipoEndereco"

        MyBase.limparParametros()
        MyBase.inserirParametro("@codTipoEndereco", iCodTipoEndereco)

        Return MyBase.executarConsulta(sSql, True).Rows.Count = 0

    End Function

    Public Function retornaReferenciaObrigatoria(ByVal iCodTipoEndereco As Int32) As Boolean
        Dim bRetorno As Boolean = False
        Dim sSql As String = ""
        Dim dtbResultado As DataTable

        sSql = "SELECT espReferencia" & Environment.NewLine &
               "  FROM com_tipoendereco" & Environment.NewLine &
               " WHERE codTipoEndereco = @codTipoEndereco"

        MyBase.limparParametros()
        MyBase.inserirParametro("@codTipoEndereco", iCodTipoEndereco)

        dtbResultado = MyBase.executarConsulta(sSql, True)

        If dtbResultado.Rows.Count > 0 Then
            bRetorno = UtilPadrao.conversao.toBoolean(dtbResultado.Rows(0).Item("espReferencia"))
        End If

        Return bRetorno

    End Function


End Class
